1,185 research outputs found
Meta-Packages: Painless Domain Specific Languages
Domain Specific Languages are used to provide a tailored modelling notation
for a specific application domain. There are currently two main approaches to
DSLs: standard notations that are tailored by adding simple properties; new
notations that are designed from scratch. There are problems with both of these
approaches which can be addressed by providing access to a small meta-language
based on packages and classes. A meta-modelling approach based on meta-packages
allows a wide range of DSLs to be defined in a standard way. The DSLs can be
processed using standard object-based extension at the meta-level and existing
tooling can easily be defined to adapt to the new languages. This paper
introduces the concept of meta-packages and provides a simple example
Formalizing homogeneous language embeddings
The cost of implementing syntactically distinct Domain Specific Languages (DSLs) can
be reduced by homogeneously embedding them in a host language in cooperation with its
compiler. Current homogeneous embedding approaches either restrict the embedding of
multiple DSLs in order to provide safety guarantees, or allow multiple DSLs to be embedded
but force the user to deal with the interoperability burden. In this paper we present the
m-calculus which allows parameterisable language embeddings to be specified and analysed.
By reducing the problem to its core essentials we are able to show how multiple,
expressive language embeddings can be defined in a homogeneous embedding context. We
further show how variant calculi with safety guarantees can be defined
Model transformations in Converge
Model transformations are currently the focus of much interest and research due to the OMGās QVT initiative. Current proposals for model transformation languages
can be divided into two main camps: those taking a ādeclarativeā approach, and those opting for an āimperativeā approach. In this paper we detail an imperative, meta-circular, object orientated, pattern matching programming language Converge which is enriched with features pioneered by the Icon programming language,
amongst them: success/failure, generators and goal-directed evaluation. By presenting these features in a language suitable for representing models, we show
that we are able to gain some of the advantages of declarative approaches in an imperative setting
- ā¦